"""
多线程共享全局资源
"""

import threading

num = 100


def add():
    """
    线程函数
    """
    global num
    num += 100
    print(f'子线程{threading.current_thread().name}执行结束，num={num}')


def sub():
    """
    线程函数
    """
    global num
    num -= 50
    print(f'子线程{threading.current_thread().name}执行结束，num={num}')


if __name__ == '__main__':
    print(f'主线程{threading.current_thread().name}开始执行')
    print('开始前：num =', num)

    # 创建子线程
    t1 = threading.Thread(target=add)
    t2 = threading.Thread(target=sub)

    # 启动子线程
    t1.start()
    t2.start()

    # 阻塞主线程
    t1.join()
    t2.join()

    print('结束后：num =', num)
    print(f'主线程{threading.current_thread().name}执行结束，num={num}')

